﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace mrp16062010.Uretec
{
    class OperasyonUret
    {
        private static OperasyonUret nesne;
        private static object syncRoot = new Object();

        private OperasyonUret()
        { }

        public static OperasyonUret Nesne
        {
            get
            {
                if (nesne == null)
                {
                    lock (syncRoot)
                    {
                        if (nesne == null)
                            nesne = new OperasyonUret();
                    }
                }
                return nesne;
            }
        }

        public List<Rota.Operasyon> Uret(int adet, Rota.Operasyon.Tur turu)
        {
            List<Rota.Operasyon> operasyonList = new List<Rota.Operasyon>();
            Troschuetz.Random.DiscreteUniformDistribution d = new Troschuetz.Random.DiscreteUniformDistribution();
            d.Alpha = 1;
            d.Beta = 5;
            List<IsMerkezi> tempMerkezler = new List<IsMerkezi>();
            tempMerkezler.AddRange(OrnekVeri.IsMerkeziList.Where(p=>p.UretimTuru==turu));
            List<IsMerkezi> secilenMerkezler = new List<IsMerkezi>();
            System.Random rnd = new System.Random();

            for (int i = 0; i < adet; i++)
            {
                int kod = Rota.Operasyon.SonKod + 1;

                IsMerkezi secilenMerkez = tempMerkezler[rnd.Next(tempMerkezler.Count)];
                secilenMerkezler.Add(secilenMerkez);
                tempMerkezler.Remove(secilenMerkez);

                TimeSpan opSure = new TimeSpan(0, d.Next(), 0);
                TimeSpan hazSure = new TimeSpan(0);

                Rota.Operasyon yeniOperasyon = new Rota.Operasyon(kod, kod.ToString(), opSure, hazSure, secilenMerkez);
            }
            return operasyonList;
        }
    }
}
